let path = require('path');

//获取node.exe的绝对路径
console.log(process.execPath);//D:\nodejs\node.exe

//存放当前文件（即server.js）文件夹的绝对路径
console.log(__dirname);//D:\nodeTest\node_path\lib

//当前文件（即server.js）的绝对路径
console.log(__filename);//D:\nodeTest\node_path\lib\server.js

//从所传入的文件路径（相对或绝对）中获取存放传入文件的文件夹的相对或绝对路径
//（例如 传入 public/home.html 则返回的是public）
console.log(path.dirname(__filename));//D:\nodeTest\node_path\lib

//执行当前脚本（即server.js）的位置 （例如 在根目录下执行 node ./xxx/xxx/a.js 则返回的是根目录地址 ）
console.log(process.cwd());//D:\nodeTest\node_path\lib

//'a/b/c'和'../src' 组合而成的绝对路径 文件或文件夹都行
//例如 console.log(path.resolve('a/b/c', '../src'));//D:\nodeTest\node_path\lib\a\b\src
// console.log(path.resolve(__dirname, '../public'));//D:\nodeTest\node_path\public
//
// //'a/b/c'和'../src'组成的相对路径
// //console.log(path.join('a/b/c', '../src'));//a\b\src
// console.log(path.join(__dirname, '../public'));//D:\nodeTest\node_path\public
//
// //相当于path.resolve(__dirname, '../public/home.html')或path.join(__dirname, '../public/home.html')
// //但传入的必须是文件路径，而不是文件夹路径，而且当文件不存在时会抛出异常
// console.log(require.resolve('../public/home.html'));//D:\nodeTest\node_path\public\home.html